package com.bysj.sausys.service;

import com.bysj.sausys.beans.PageQuery;
import com.bysj.sausys.beans.PageResult;
import com.bysj.sausys.model.SysUser;

import java.util.List;
import java.util.Map;

/**
 * 系统用户service接口
 *
 * @author WangZK
 */
public interface ISysUserService {

    /**
     * 保存系统用户
     *
     * @param sysUser
     * @param username
     */
    void save(SysUser sysUser, String username);

    /**
     * 更新系统用户
     *
     * @param sysUser
     * @param username
     */
    void update(SysUser sysUser, String username);

    /**
     * 根据用户类型获取用户信息
     *
     * @param categoryId
     * @param pageQuery
     */
    PageResult<Map> getPageByCategoryId(String categoryId, PageQuery pageQuery);

    /**
     * 根据用户名查询用户
     *
     * @param username
     * @return
     */
    Map findByUsername(String username);

    /**
     * 修改用户状态
     *
     * @param id
     * @param status
     * @param username
     */
    void updateStatusByUserId(Integer id, int status, String username);

    /**
     * 根据用户id查询用户
     *
     * @param id
     * @return
     */
    SysUser findById(Integer id);

    /**
     * 根据用户类型查询用户
     *
     * @param categoryId
     * @return
     */
    List<SysUser> findByCategoryId(String categoryId);

    /**
     * 重置密码
     *
     * @param id
     * @param username
     */
    void resetPsw(Integer id, String username);

    /**
     * 修改密码
     *
     * @param id
     * @param newPwd
     * @param username
     */
    void updatePsw(Integer id, String newPwd, String username);

    /**
     * 根据社团id获取用户
     *
     * @param assId
     * @return
     */
    List<SysUser> findByAssId(Integer assId);

    /**
     * 根据社团id禁用用户
     *
     * @param assId
     * @param username
     */
    void updateStatusByAssId(Integer assId, String username);
}
